package com.istock.union.user.service;

import java.util.List;

import org.springframework.transaction.annotation.Transactional;

import com.istock.base.common.api.model.PageInfo;
import com.istock.base.enumration.BaseEnum;
import com.istock.union.user.model.DictTypeData;
import com.istock.union.user.model.DictTypeInfo;
import com.istock.union.user.model.DictTypeQuery;

public interface DictInfoService {

	/**页面上的查询
	 * @param typeQuery 页面上可以设置的查询条件
	 * @param page
	 * @return
	 */
	public List<DictTypeInfo> findTypeList(DictTypeQuery typeQuery , PageInfo<DictTypeInfo> page);
	
	/**得到某一个数据type下的所有的字典项
	 * @param type 字典类型
	 * @return
	 */
	public List<BaseEnum> getEnumsByType(String type);
	
	
	/**页面编辑某一个数据字典,先得到整个数据字典的所有信息,包含所有的字典项
	 * 如果找不到id,则返回null
	 * @param id
	 * @return
	 */
	public DictTypeData findTypeById(String id);
	
	/**在编辑页面上,需要查询当前输入的字典是否已经在数据库存在
	 * 不存在返回true
	 * 存在返回false
	 * @param id
	 * @param type
	 * @return
	 */
	public boolean checkDictTypeUnique(String id , String type);
	
	/**批量删除部分的数据字典
	 * @param types
	 */
	@Transactional
	public void removeTypes(String[] types);
	
	/**标准的mybatis批量的调用的写法
	 * @param dictTypeData
	 * @throws Exception
	 */
	public void saveDictTypeData(DictTypeData dictTypeData) throws Exception;
	
}
